Short:    Use the picasso gfxboard with Modula-2
Author:   C.Wartmann@GANDALF.berlinet.de
Uploader: C.Wartmann@GANDALF.berlinet.de
Type:     dev/m2


Use your Picasso II with Modula-2 ! Every function of vilintuisup.library
avaible via Modula-2 + fast ML Line-routines. Lots of demo programms.

FREEWARE, but please send me your suggestions/enhancements etc. via E-Mail.



Dokumentatation zu den Modula-2 Schnittstellenmodulen für die
Picasso Grafikkarte von VillageTronic.

*******************************************************************************
 : Program.         VilIntuiSupL.def
 : Author.          Carsten Wartmann (Crazy Video)
 : Address.         Wutzkyallee 83, 12353 Berlin
 : Phone.           030/6614776 
 : E-Mail           C.WARTMANN@GANDALF.berlinet.de
                    Carsten_Wartmann@tfh-berlin.de
 : Version.         0.99c (0.99b)
 : Date.            21.08.1995 (16.11.1994) (24.8.94) (22.Feb.1994) 
 : Copyright.       Freeware
 : Language.        Modula-2
 : Compiler.        M2Amiga V4.3d
 : Contents.        Macht die VilIntuiSup.library für MODULA-2 (M2Amiga)
 : Contents.        Programmierer nutzbar.
*******************************************************************************)


Folgende Routinen stellt die VilIntuiSup.library zur Verfügung :

DEFINITION MODULE VilIntuiSupL{"vilintuisup.library",2} ;


FROM SYSTEM     IMPORT ADDRESS,BYTE ;
FROM ExecD      IMPORT ListPtr ;
FROM IntuitionD IMPORT ScreenPtr,RememberPtr ;
FROM UtilityD   IMPORT TagItemPtr,Tag ;

IMPORT vil:VilIntuiSupD,R ;



(* Old function, do not use in future !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*)
PROCEDURE OpenVillageScreen(mode{R.A0} : vil.DimensionPtr) : ScreenPtr ; 
          CODE -30 ;

PROCEDURE OpenVillageScreenTagList(tags{R.A0} : TagItemPtr) : ScreenPtr ; 
          CODE -114 ;

PROCEDURE CloseVillageScreen(screen{R.A0} : ScreenPtr) ; 
          CODE -36 ;
     
PROCEDURE LockVillageScreen(screen{R.A0}   : ScreenPtr) : ADDRESS ; 
          CODE -42 ;
PROCEDURE UnLockVillageScreen(screen{R.A0} : ScreenPtr) ; 
          CODE -48 ;

PROCEDURE GetMemSize(screen{R.A0} : ScreenPtr) : LONGCARD ;
          CODE -72 ;

PROCEDURE VillageScreenData(screen{R.A0} : ScreenPtr ;
                            tag{R.D0}    : Tag) : LONGCARD ; 
          CODE -120 ;

PROCEDURE IsVillageScreen(screen{R.A0} : ScreenPtr) : BOOLEAN ; 
          CODE -66 ;

PROCEDURE VillageRectFill(screen{R.A0}  : ScreenPtr ;
                          fillrec{R.A1} : vil.VilFillRecordPtr) : LONGINT ; 
                          CODE -78 ;

PROCEDURE VillageBlitCopy(screen{R.A0} : ScreenPtr ;
                          record{R.A1} : vil.VilCopyRecordPtr) ;
          CODE -54 ;

PROCEDURE WaitVillageBlit ;
          CODE -60 ;

PROCEDURE VillageModeRequest(tags{R.A0} : TagItemPtr) : LONGCARD ;
          CODE -84 ;
PROCEDURE VillageModeList(memorykey{R.A0} : RememberPtr ;
                          tags{R.A1}      : TagItemPtr) : ListPtr ;
          CODE -90 ;
PROCEDURE VillageBestModeID(tags{R.A0} : TagItemPtr) : LONGCARD ;
          CODE -108 ;

PROCEDURE VillageGetBufAddr(screen{R.A0} : ScreenPtr ;
                            num{R.D0}    : LONGCARD) : ADDRESS ;
          CODE -126 ;
PROCEDURE VillageSetDisplayBuf(screen{R.A0} : ScreenPtr ;
                               num{R.D0}    : LONGCARD) ;
          CODE -132 ;


PROCEDURE VillageSetSegment(segnum{R.D0} : LONGCARD) ;
          CODE -96 ;
PROCEDURE VillageGetSegment ;
          CODE -102 ;


END VilIntuiSupL.lib2





Ansonsten ist noch VilIntuiSupD.def aufschlussreich.

(*******************************************************************************
 : Program.         VilIntuiSupD.def
 : Author.          Carsten Wartmann (Crazy Video)
 : Address.         Wutzkyallee 83, 12353 Berlin
 : Phone.           030/6614776
 : E-Mail           C.Wartmann@GANDALF.berlinet.de (bevorzugt)
 : E-Mail           Carsten_Wartmann@tfh-berlin.de
 : Version.         1.0
 : Date.            21.08.1995 (16.Nov.1994)
 : Copyright.       Freeware
 : Language.        Modula-2
 : Compiler.        M2Amiga V4.3d
 : Contents.        Macht die VilIntuiSup.library für MODULA-2 (M2Amiga)
 : Contents.        Programmierer nutzbar.
 : Contents.        Enthält Die Definitionen der Tags, Const. etc. für
 : Contents.        die VilIntuiSup.library
*******************************************************************************)

DEFINITION MODULE VilIntuiSupD ;


FROM ExecD      IMPORT Node ;

FROM IntuitionD IMPORT ScreenPtr ;

FROM UtilityD   IMPORT tagUser ;

FROM SYSTEM     IMPORT ADDRESS,BYTE ;

IMPORT R;

[...]  Definitionen gelöscht !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

(* Support *)

(* Setze PP für 68000er *)
PROCEDURE SetPackedPixel(scr{R.A0} : ScreenPtr ; x{R.D2},y{R.D3} : CARDINAL ;
                                                 color{R.D4} : CARDINAL) ;

(* Setze TrueColorPixel *)

PROCEDURE SetTrueColorPixel(scr{R.A0} : ScreenPtr ; x{R.D2},y{R.D3}         : CARDINAL ;
                                                    r{R.D4},g{R.D5},b{R.D6} : CARDINAL) ;

(* Setze 15(6)BitPixel *)

PROCEDURE Set15BitPixel(scr{R.A0} : ScreenPtr ; x{R.D2},y{R.D3}         : CARDINAL ;
                                                r{R.D4},g{R.D5},b{R.D6} : CARDINAL) ;

PROCEDURE Set16BitPixel(scr{R.A0} : ScreenPtr ; x{R.D2},y{R.D3}         : CARDINAL ;
                                                r{R.D4},g{R.D5},b{R.D6} : CARDINAL) ;

(* Linienroutinen *)

(* In Assembler aber mit Sicherheitsabfrage *)
PROCEDURE LinePacked(scr{R.A0} : ScreenPtr ; x1{R.D5},y1{R.D6},
                                              x2{R.D2},y2{R.D3},color{R.D4} : LONGINT) ;
                                             color{R.D4} : INTEGER) ;

PROCEDURE LineTrueColor(scr : ScreenPtr ; x1,y1,x2,y2,r,g,b : INTEGER) ;

PROCEDURE Line15Bit(scr : ScreenPtr ; x1,y1,x2,y2,r,g,b : INTEGER) ;

PROCEDURE Line16Bit(scr : ScreenPtr ; x1,y1,x2,y2,r,g,b : INTEGER) ;

(* Hi-Color Support*)

PROCEDURE Get15FromRGB(r{R.D4},g{R.D5},b{R.D6} : CARDINAL) : CARDINAL ;
PROCEDURE Get16FromRGB(r{R.D4},g{R.D5},b{R.D6} : CARDINAL) : CARDINAL ;

PROCEDURE Kreis(scr : ScreenPtr ; x,y,r,col : INTEGER) ;

PROCEDURE ClearScreen(scr : ScreenPtr) ;

PROCEDURE ClearBuf(scr : ScreenPtr ; bufadr : ADDRESS) ;


END VilIntuiSupD .




Hier nun eine detailiertere Beschreibung :


Tja, ist noch in Arbeit... Man schaue sich die Demos an.
Ansonsten wäre da noch die Doku von VT zur Vilintui, die Unterschiede
der Bezeichner erkennt man aus den defs etc.

Also *mir* reichen die Schnittstellen so wie sie jetzt sind. Wenn keine
Reaktion kommt ist das auch die letzte Veröffentlichung. Ohne
Anregungen/Kritik mache ich nicht weiter.
Ich bitte jeden mir eine E-Mail zu schreiben, der diese Soft benutzt.

(*
Zu sagen wäre noch, das anscheinend in der Software von VillageTronic noch
einige "Käfer" sind, so funktioniert z.B. das Blitten vom System-Mem ins
Graphic-Mem nicht (naja, wenn Enforcer läuft gehts manchmal...)
*)
Das funktioniert jetzt. Obwohl ich mehrmals VT auf diesen Fehler
hingewiesen habe kam keine Reaktion. Nach dem letzten Update der
Picasso-Soft ging es plötzlich !


Die Punktsetzroutinen und die Chunky-Pixelroutine sind in Assembler
implementiert und schneller als die C-Konstrukte von VT.


MfG Carsten.
============
